\chapter{インストール}
\section{ディストリビューションが提供するパッケージを利用する}
各ディストリビューションで Dragon Script のパッケージが用意されている
場合には、簡単にインストールすることができます。パッケージの名前は大抵
\texttt{DragonScript} か \texttt{dragonscript} でしょう
\footnote{これはあくまでマニュアルとしての記述なので、必ずしもこれに
しなければいけないというわけではありません。}。
\texttt{libdragonscript} と \texttt{cdragon}、\texttt{gdragon}、
\texttt{kdragon}をそれぞれ分けているところもあるかもしれません。
インストールについて分からなければ、パッケージのメンテナさんに聞いてみて
ください。

\section{ソースコードをコンパイルする}
ディストリビューションがパッケージを提供していない場合は、自分でビルド
して使うことができます。

\subsection{必要な物}
以下の通りです。

\subsubsection{必ず必要なもの}
\begin{itemize}
  \item GCC C++ 4.3 以降
  \item GNU gettext 0.17 以降
\end{itemize}

\subsubsection{gdragon のビルドに必要なもの}
\begin{itemize}
  \item glib 最新版
  \item gtk 最新版
\end{itemize}


\subsubsection{kdragon のビルドに必要なもの}
\begin{itemize}
  \item Qt 最新版
  \item KDE 最新版
\end{itemize}

\subsubsection{この文書を再組版するのに必要なもの}
\begin{itemize}
  \item doxygen 最新版
  \item texlive 2007 以降
  \item ptetex 3.0 以降
\end{itemize}

\subsection{ダウンロード}
最新のソースコードは
$<$\url{http://code.google.com/p/dragonscript/downloads/list}$>$
から取得できます。ソースコードは圧縮されていますので、作業しやすい場所に
解凍してください。解凍するには\footnote{\texttt{\$} 記号のあとを入力します。}
\begin{lstlisting}
$ tar Jxvf DragonScript-0.0.1.tar.xz
\end{lstlisting}
\begin{lstlisting}
$ xz -dc DragonScript-0.0.1.tar.xz | tar xvf -
\end{lstlisting}
\begin{lstlisting}
$ xz -d DragonScript-0.0.1.tar.xz
$ tar xvf DragonScript-0.0.1.tar
\end{lstlisting}
などのようなコマンドを実行してもできます。\texttt{0.0.1} は Dragon Script
のバージョンです。

\subsection{ビルド}
解凍したディレクトリで以下のコマンドを実行します。
\begin{lstlisting}
$ cd DragonScript-0.0.1
$ mkdir build
$ cd build
$ cmake .. [ビルドオプション]
$ make
\end{lstlisting}
これで
\begin{lstlisting}
[100%] Built target cdragon
\end{lstlisting}
のような終わりかたをすれば成功です。\verb+[ビルドオプション]+ は\ 
\verb+-D[変数名]=[値]+ の形を取ります。もちろん複数あってもか
まいません。

\subsubsection{ビルドオプション}
\paragraph{\texttt{CMAKE\_INSTALL\_PREFIX}}
\index[wordindex]{CMAKE\_INSTALL\_PREFIX}
インストール先のルートディレクトリを指定します。指定しなかった場合は
UNIX では \url{/usr/local} になります。

\paragraph{\texttt{CMAKE\_RUNTIME\_PATH}}
\index[wordindex]{CMAKE\_RUNTIME\_PATH}
実行可能ファイルをインストールするディレクトリを \verb+CMAKE_INSTALL_PREFIX+
からの相対パスで指定します。指定しなかった場合は、\verb+bin+ になります。
\verb+CMAKE_INSTALL_PREFIX+ と \verb+CMAKE_RUNTIME_PATH+ の両方を
指定しなかった場合、\url{/usr/local/bin} にインストールされます。

\paragraph{\texttt{CMAKE\_LIBRARY\_PATH}}
\index[wordindex]{CMAKE\_LIBRARY\_PATH}
実行に必要なライブラリファイルをインストールするディレクトリを
 \verb+CMAKE_INSTALL_PREFIX+ からの相対パスで指定します。指定し
なかった場合は、\verb+lib+ になります。\verb+CMAKE_INSTALL_PREFIX+ と
\verb+CMAKE_LIBRARY_PATH+ の両方を指定しなかった場合、\url{/usr/local/lib} 
にインストールされます。プラグインはここに \verb+DragonScript+ という
ディレクトリを作成し、そこに格納します。

\paragraph{\texttt{CMAKE\_INCLUDE\_PATH}}
\index[wordindex]{CMAKE\_INCLUDE\_PATH}
プラグインを作成するのに必要なヘッダファイル群をインストールする
ディレクトリを \verb+CMAKE_INSTALL_PREFIX+ からの相対パスで指定します。指定し
なかった場合は、\verb+include+ になります。\verb+CMAKE_INSTALL_PREFIX+ と
\verb+CMAKE_INCLUDE_PATH+ の両方を指定しなかった場合、\url{/usr/local/include} 
にインストールされます。実際には、ここに \verb+DragonScript+ というディレクトリを
作成し、そこに格納します。

\paragraph{\texttt{CMAKE\_DATA\_PATH}}
\index[wordindex]{CMAKE\_DATA\_PATH}
上記以外のファイル、例えば、マニュアルやメッセージデータなどをインストールする
ディレクトリを \verb+CMAKE_INSTALL_PREFIX+ からの相対パスで指定します。指定し
なかった場合は、\verb+share+ になります。\verb+CMAKE_INSTALL_PREFIX+ と
\verb+CMAKE_DATA_PATH+ の両方を指定しなかった場合、\url{/usr/local/share} 
にインストールされます。実際には、ここに \verb+DragonScript+ というディレクトリを
作成し、そこに格納します。

\paragraph{\texttt{DRAGON\_DATA\_PATH}}
\index[wordindex]{DRAGON\_DATA\_PATH}
\verb+CMAKE_DATA_PATH+ と同じですが、こちらは、\verb+CMAKE_DATA_PATH+ 内に
作成するディレクトリ名を変更できます。指定しなかった場合は、
\verb+${CMAKE_DATA_PATH}/DragonScript+ が使用されます。指定する場合は、左のように
\verb+CMAKE_DATA_PATH+ で指定する部分から記述してください。この指定がある場合、
\verb+CMAKE_DATA_PATH+ での指定は無効になります。

\paragraph{\texttt{MO\_INSTALL\_PATH}}
\index[wordindex]{MO\_INSTALL\_PATH}
メッセージ翻訳データをインストールするディレクトリを \verb+CMAKE_INSTALL_PREFIX+ 
からの相対パスで指定します。指定しなかった場合は、\verb+${DRAGON_DATA_PATH}/locale+ になります。
つまり、何も指定しなかった場合、\url{/usr/local/share/DragonScript/locale} 
にインストールされます。

\paragraph{\texttt{MO\_INSTALL\_PATH\_FOR\_SUB}}
\index[wordindex]{MO\_INSTALL\_PATH!--- \_FOR\_SUB}
メッセージ翻訳データをインストールするディレクトリを \verb+CMAKE_INSTALL_PREFIX+ 
からの相対パスで指定します。指定しなかった場合は、\verb+${DRAGON_DATA_PATH}/locale+ になります。
つまり、何も指定しなかった場合、\url{/usr/local/share/DragonScript/locale} 
にインストールされます。こちらは、命令の翻訳が入っています。

\paragraph{\texttt{DISABLE\_CURSES}}
\index[wordindex]{DISABLE\_CURSES}
1 を指定すると ncurses がインストールされていても cdragon で ncurses のサポートを無効にします。
デフォルトはインストールされていれば有効になります。

\paragraph{\texttt{DISABLE\_GDRAGON}}
\index[wordindex]{GDragon!DISABLE\_ ---}
1 を指定すると gtk がインストールされていても gdragon のビルドを止めます。
gtk がインストールされていれば有効になります。

\paragraph{\texttt{DISABLE\_KDRAGON}}
\index[wordindex]{KDragon!DISABLE\_ ---}
1 を指定すると KDE がインストールされていても kdragon のビルドを止めます。
Qt のみのインストールではビルドされません。KDE のインストールが必要です。

\paragraph{\texttt{*\_DOMAIN\_NAME}}
\index[wordindex]{libdragonscript!--- \_DOMAIN\_NAME}
\index[wordindex]{CDragon!--- \_DOMAIN\_NAME}
\index[wordindex]{GDragon!--- \_DOMAIN\_NAME}
\index[wordindex]{KDragon!--- \_DOMAIN\_NAME}
それぞれメッセージ翻訳のドメイン名を指定します。\verb+*+ には \verb+LIBDRAGONSCRIPT+、
\verb+CDRAGON+、\verb+GDRAGON+、\verb+KDRAGON+ が入ります。
デフォルトはそれぞれ \verb+libdragonscript+、\verb+cdragon+、\verb+gdragon+、
\verb+kdragon+ です。

\paragraph{\texttt{CMAKE\_MODULE\_PATH}}
\index[wordindex]{CMAKE\_MODULE\_PATH}
CMake モジュールを検索するパスを追加する場合に指定します。デフォルトでは
\verb+${CMAKE_ROOT}/Modules+ および \verb+${CMAKE_ROOT}/../${CMAKE_MODULE_APPS_PATH}+
が対象です。指定された場合、これらよりも``先に''指定したディレクトリが検索されます。

\paragraph{\texttt{CMAKE\_MODULE\_APPS\_PATH}}
\index[wordindex]{CMAKE\_MODULE\_PATH!--- \_APPS\_PATH}
KDE が CMake モジュールを格納している場所を指定します。デフォルトでは
\verb+apps/cmake/modules+ です。CMake のルートの親ディレクトリからの相対パスで
指定してください。

\paragraph{\texttt{MAKE\_DOC}}
\index[wordindex]{MAKE\_DOC}
1 を指定するとこの \TeX ソースを再組版できます。再組版が成功した場合(1ページ以上処理された場合)、
オリジナルのファイルは上書きされてしまいますので御注意ください。0 を指定した場合やデフォルトでは
\begin{lstlisting}
$ make doc
\end{lstlisting}
の実行は Doxygen によるプラグインリファレンスのみ作成されます。

\paragraph{\texttt{CMAKE\_BUILD\_TYPE}}
\index[wordindex]{CMAKE\_BUILD\_TYPE}
デバッグ版を作成したい場合には \verb+Debug+ を指定してください。デフォルトでは
デバッグ情報のない実行可能ファイルが生成されます。なお \TeX の再組版においては
latex コマンドの出力がでるようになります。

\subsection{インストール}
必要であれば root 権限を取得してください。\verb+CMAKE_INSTALL_PREFIX+ でホームディレクトリなど
root でなくても書き込める場所を指定した場合は不要です。
\begin{lstlisting}
$ su
\end{lstlisting}
root のパスワードを入力してください。\footnote{\texttt{\#} のあとを入力してください。
\texttt{\#}は root 権限であることを示します。}
\begin{lstlisting}
# make install
\end{lstlisting}

なお、\verb+sudo+ が使える環境の場合は、
\begin{lstlisting}
$ sudo make install
\end{lstlisting}
が可能です。

\subsection{竜を追い出す}
念のため、竜を追い出す方法を説明しておきます。
\begin{lstlisting}
$ cd DragonScript-0.0.1
$ su
# make uninstall
\end{lstlisting}
で綺麗さっぱり居なくなります。ただし問題が生じる可能性があるので、命令を遂行中の
竜までは追い出しません。彼らは命令が終った後でていきますが、Solaris や AIX などでは
命令を遂行している竜がいないことを確認してから追い出す必要があります。
なお、\texttt{Makefile}、\texttt{install\_manifest.txt}、
\texttt{cmake\_uninstall.cmake} の3ファイルが最低でも残されている必要があります。
\texttt{Makefile} を消されてしまっている場合は
\begin{lstlisting}
# cmake -P cmake_uninstall.cmake
\end{lstlisting}
で、\texttt{cmake\_uninstall.cmake} も消されてしまっている場合は、
\texttt{install\_manifest.txt} の中に記されているファイルをすべて削除してくれれば
アンインストールできます。なお、シェルが bash であれば
\begin{lstlisting}
# for target in `cat install_manifest.txt`; do
> rm -fv $target
> done
\end{lstlisting}
で削除できます。
